Author |
Message |
advocot
Заглянувший
Joined: 10 Oct 2012
Posts: 12
Карма: 1 поощрить/наказать
|
Posted: Sat Oct 20, 2012 4:13 pm (написано за 7 минут 7 секунд)
Post subject:
|
|
Столкнулся еще с одной проблемой. Проблема инактива. Сделан чат, всё работает отлично. Но если бездействовать некоторое время(например час), а затем отправить сообщение, то оно не обновится. Вернее обновится. но с задержкой примерно в минуту. Можно отправлять хоть сотни сообщений в это время. Они в итоге все появятся, но через минуту. На сервере будто ставится пауза при таком вот инактиве. У меня РПЛ используется и для приватных сообщений. То есть общаются себе 2 юзера. Обсудили фильм, пошли смотреть. Посмотрели, вернулись. Пишут "Кстати норм фильм. Согласен?". На экране ничего не происходит. И начинают спамить, думая, что чат сломался. Однако весь этот спам приходит потом пачкой. Так вот, в чем проблема? Если это не глюк, а запланированная "пауза" сервера, то можно ли какой-то callback на это поставить? Т.е. как только сервер паузится, юзеру поступает инфа и... Ну например появляется сообщение "Вы слишком долго отсуствовали." и ссылка "Я вернулся", на которой будет висеть execute. Извиняюсь, если обсуждалось, но вроде не нашел. PS Кстати пауза наступает у всех юзеров. Но как только кто-то отправит сообщение, то это будит соединение у всех юзеров
|
|
Back to top |
|
 |
advocot
Заглянувший
Joined: 10 Oct 2012
Posts: 12
Карма: 1 поощрить/наказать
|
Posted: Wed Oct 24, 2012 6:00 pm (спустя 4 дня 1 час 47 минут; написано за 1 минуту 11 секунд)
Post subject:
|
|
На случай, если вдруг кто ответит, появился еще 1 вопросик. Можно ли как-то определить, сколько человек слушает тот или иной канал? Через "персональные" каналы не очень удобно. Подсчитать конечно можно, но этих каналов получится слишком много.
|
|
Back to top |
|
 |
advocot
Заглянувший
Joined: 10 Oct 2012
Posts: 12
Карма: 1 поощрить/наказать
|
Posted: Thu Oct 25, 2012 8:49 pm (спустя 1 день 2 часа 48 минут; написано за 4 минуты 34 секунды)
Post subject:
|
|
Дико извиняюсь, но снова проблема) Отсуствие подробной документации наверное сказывается. Проблема в слежении за онлайн-каналами. В кроне висит скрипт, который работает 10 мин и запускается каждые 10 мин: Code (php): | скопировать код в буфер обмена | ini_set (www.php.net/ini_set)("display_errors", 1); ini_set (www.php.net/ini_set)("max_execution_time", 600); $startedTime = time (www.php.net/time)(); $file = '/var/www/inc/cron_test.txt'; $current = file_get_contents (www.php.net/file_get_contents)($file); $current .= "CRON STARTED: ".date("d.m.Y H:i:s")."\n";
require_once "rpl_common.php";
$pos = 0; while (1) { foreach ($mpl->cmdWatch($pos, "user_") as $event) { $current .= date (www.php.net/date)("d.m.Y H:i:s").": event: $event[event]; id: $event[id]; pos: $event[pos]; microtime:".microtime(4)."\n"; file_put_contents($file, $current); $pos = $event['pos']; } sleep (www.php.net/sleep)(1); if($startedTime+599<time()) die (www.php.net/die)(); } | Пишет лог просто. Для отладки мне. Вырезка с этого лога(cron_test.txt): Quote: |
CRON STARTED: 25.10.2012 17:30:01 25.10.2012 17:30:01: event: FAKE; id: FAKE; pos: 655; microtime:1351186201.1629 25.10.2012 17:30:52: event: offline; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 658; microtime:1351186252.2445 25.10.2012 17:31:22: event: online; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 664; microtime:1351186282.2884 25.10.2012 17:32:52: event: offline; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 668; microtime:1351186372.425 25.10.2012 17:33:22: event: online; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 670; microtime:1351186402.4705 25.10.2012 17:34:52: event: offline; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 672; microtime:1351186492.6038 25.10.2012 17:35:22: event: online; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 673; microtime:1351186522.6507 25.10.2012 17:36:52: event: online; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 677; microtime:1351186612.7846 | Юзер просто загрузил страницу, подключился к каналу и ничего не делает. В логе же он то входит в онлайн, то выходит. Конфиг РПЛ стандартный. Особенно 2 последние строки как-то смущают. В чем проблема?
|
|
Back to top |
|
 |
advocot
Заглянувший
Joined: 10 Oct 2012
Posts: 12
Карма: 1 поощрить/наказать
|
Posted: Thu Nov 01, 2012 2:44 pm (спустя 6 дней 17 часов 54 минуты; написано за 49 секунд)
Post subject:
|
|
Знаю правила и понимаю, что мне тут никто ничего не должен. Поэтому готов предложить вознаграждение за помочщь(это не запрещено тут?)
|
|
Back to top |
|
 |
pr0tect0r
Заглянувший
Joined: 06 Jun 2012
Posts: 7
Карма: 0 поощрить/наказать
|
Posted: Thu Nov 01, 2012 2:53 pm (спустя 9 минут; написано за 1 минуту 56 секунд)
Post subject:
|
|
Попробовал воспроизвести ситуацию у себя. Настройки стандартные. 5 минут - полет нормальный - ни одного отключения.
|
|
Back to top |
|
 |
advocot
Заглянувший
Joined: 10 Oct 2012
Posts: 12
Карма: 1 поощрить/наказать
|
Posted: Thu Nov 01, 2012 3:39 pm (спустя 45 минут; написано за 6 минут 22 секунды)
Post subject:
|
|
Только что понял причину этого. Изначально не смог определить из-за какого-то бага в браузере. У меня в консоле ничего не писалось. Открыл консоль другого браузера и увидел там: Quote: |
Next query in 10 ms chat.cosanosstra.ru:83 Bounce detected (bounceCount = 1) chat.cosanosstra.ru:83 Next query in 10 ms chat.cosanosstra.ru:83 Bounce detected (bounceCount = 2) chat.cosanosstra.ru:83 Next query in 10 ms chat.cosanosstra.ru:83 Bounce detected (bounceCount = 3) chat.cosanosstra.ru:83 Next query in 10 ms chat.cosanosstra.ru:83 Bounce detected (bounceCount = 4) chat.cosanosstra.ru:83 Next query in 10 ms chat.cosanosstra.ru:83 Bounce detected (bounceCount = 5) chat.cosanosstra.ru:83 Next query in 10 ms chat.cosanosstra.ru:83 Bounce detected (bounceCount = 6) chat.cosanosstra.ru:83 Next query in 10 ms chat.cosanosstra.ru:83 Bounce detected (bounceCount = 7) chat.cosanosstra.ru:83 Next query in 10 ms chat.cosanosstra.ru:83 Bounce detected (bounceCount = 8) chat.cosanosstra.ru:83 Next query in 10 ms chat.cosanosstra.ru:83 Bounce detected (bounceCount = 9) chat.cosanosstra.ru:83 Next query in 10 ms chat.cosanosstra.ru:83 Bounce detected (bounceCount = 10) chat.cosanosstra.ru:83 Next query in 10 ms chat.cosanosstra.ru:83 Bounce detected (bounceCount = 11) chat.cosanosstra.ru:83 Next query in 5500 ms chat.cosanosstra.ru:83 Bounce detected (bounceCount = 12) chat.cosanosstra.ru:83 Next query in 9000 ms chat.cosanosstra.ru:83 Bounce detected (bounceCount = 13) chat.cosanosstra.ru:83 Next query in 13500 ms chat.cosanosstra.ru:83 Bounce detected (bounceCount = 14) chat.cosanosstra.ru:83 Next query in 19000 ms | Думаю теперь всё стало на свои места :) Просто копнуть в сторону BOUNCE я не додумался. Да я и не знал, что это, т.к. в конфиге толком не объясняется, что это за "отскоки". Я думал тут что-то криво установлено. В конфиге у меня JS_MAX_BOUNCES=10. Каждые 60 сек. простоя, как я понимаю, идет реконнект. Делей - JS_WAIT_RECONNECT_DELAY=0.01. А вот после этих 10 попыток делей растет. И со временем он будет больше, чем OFFLINE_TIMEOUT(у меня дефолтно 30 сек.). И вот тут и начинается эта суматоха с оффлайн/онлайн. На 8ой странице этой темы товарищ aml дал патч от этого. Отпишу, если сработает. Собственно то обсуждение и натолкнуло меня на мысль о том, что моя консоль мне что-то не договаривает. А изначально не придал значения всем подобным предыдущим постам. Подумал, что это было давно и уже наверняка всё это исправлено.
|
|
Back to top |
|
 |
advocot
Заглянувший
Joined: 10 Oct 2012
Posts: 12
Карма: 1 поощрить/наказать
|
Posted: Sun Nov 04, 2012 12:10 pm (спустя 2 дня 20 часов 30 минут; написано за 4 минуты 8 секунд)
Post subject:
|
|
Вышеуказанную проблему я поборол. Не стал патч ставить, просто засунул в крон скрипт, который каждые 9 минут посылает в канал пустышку. А вот проблему с cmdWatch никак не могу побороть. Не все ивенты оно отображает. Выше давал весь код и лог. Даже в том логе есть кусок: Quote: |
25.10.2012 17:35:22: event: online; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 673; microtime:1351186522.6507 25.10.2012 17:36:52: event: online; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 677; microtime:1351186612.7846 | Т.е. события "offline" нету. Таким образом у меня клиенты зависают в онлайне. Зашел, посмотрел, закрыл браузер и неделю не заходил. А всю эту неделю я там онлайн числюсь и мне пишут. Юзать cmdOnline не советовали даж в документации. Как тут быть? Кто сталкивался и чем закончилось противостояние?
|
|
Back to top |
|
 |
affka
Guest
Карма: 388 поощрить/наказать
|
Posted: Mon Nov 12, 2012 7:21 am (спустя 7 дней 19 часов 11 минут; написано за 7 минут 51 секунду)
Post subject:
|
|
Всем доброго времени суток. Тоже боролся с проблемой BOUNCES и понял почему у всех такая проблема. Дело в том, что изначально время ожидания ответа (время long pooling'a) в конфигурации стоит как 300 секунд, т.е. целых 5 минут(!) Но у веб серверов (nginx/apache) по-умолчанию таймаут стоит гораздо меньше (у меня в ngnix стоял таймаут ожидания - минута). Поэтому соединение обрывалось веб сервером, о чём в коде и написано: "This is an unexpected disconnect (bounce).". Решается следующим образом: либо вы на веб сервере ставите для домена реалплекстора таймаут больше 5-ти минут (именно больше, т.е. лучше с запасом оставить, т.к. в реале соединение будет чуть больше 5-ти минут), либо в настройках реалплекстора ставим WAIT_TIMEOUT = 20, например (20 секунд). Теперь в логах пишется "Disconnect detected" после каждого соединения, но это ничего не влияет (в коде просто вывод лога в этом месте). По сути само сообщение некорректно, мне кажется. Правильней было бы в этом месте написать о том, что просто сервер вернул пустой результат (т.е. никаких событий не произошло). Надеюсь, кому-то моё сообщение поможет :) Если что - обращайтесь, попробую помочь. Мои контактные данные тут - affka.ru/contacts/
|
|
Back to top |
|
 |
affka
Guest
Карма: 388 поощрить/наказать
|
Posted: Fri Nov 16, 2012 5:06 am (спустя 3 дня 21 час 44 минуты; написано за 44 секунды)
Post subject:
|
|
Включил на рутвите debug режим, там тоже если событий не происходит - валится в лог "Disconnect detected". Теперь точно знаю, что это нормальное поведение :)
|
|
Back to top |
|
 |
advocot
Заглянувший
Joined: 10 Oct 2012
Posts: 12
Карма: 1 поощрить/наказать
|
Posted: Sun Nov 18, 2012 9:48 pm (спустя 2 дня 16 часов 41 минуту; написано за 2 минуты 31 секунду)
Post subject:
|
|
Решил свою проблему с cmdWatch. Товарищ affka подсказал в чем была проблема, за то ему спасибо. Проблема была в том, что я не сохранял позицию($pos). И при повторном запуске скрипта позиция получалась через FAKE. Как выяснилось FAKE возвращает позицию последнего события. Поэтому часть событий у меня терялась. Теперь я записываю позицию в файл. Вроде пока всё работает отлично.
|
|
Back to top |
|
 |
Demon_id
Заглянувший
Joined: 01 Aug 2006
Posts: 13
Карма: 0 поощрить/наказать
|
Posted: Mon Nov 19, 2012 11:27 pm (спустя 1 день 1 час 39 минут; написано за 4 минуты 13 секунд)
Post subject: Чат like Facebook
|
|
Добрый день! Решил использовать Dklab_Realplexor для реализации чата "как на Facebook". Как должно работать: - есть список друзей пользователя - с каждым другом можно открыть окно переписки и общаться вдвоём - в каждое окно "на двоих" каждый участник может добавить ещё участников в это же окно - должен быть мониторинг друзей онлайн Вопрос: не совсем понял про каналы в Риалплексоре. Исходя из задачи, как должны быть организованы каналы? Нужен один канал или каждое окно сообщений это отдельный канал? Расскажите пожалуйста как должно быть.
|
|
Back to top |
|
 |
affka
Guest
Карма: 388 поощрить/наказать
|
Posted: Tue Nov 20, 2012 1:09 pm (спустя 13 часов 42 минуты; написано за 3 минуты 14 секунд)
Post subject:
|
|
Добрый день, Demon_id. Каждое окно чата - это отдельный канал должен быть. Список онлайн друзей будет мониторить демон, который будет следить каждые 30 секунд, например, за изменениями онлайн пользователей (кто вошёл или вышел), потом перебирать всех друзей каждого онлайн пользователя и рассылать каждому пользователю изменения только по его друзьям. Каналы имеются в любом комет сервере, на них всё и завязано.
|
|
Back to top |
|
 |
Demon_id
Заглянувший
Joined: 01 Aug 2006
Posts: 13
Карма: 0 поощрить/наказать
|
Posted: Tue Nov 20, 2012 5:01 pm (спустя 3 часа 51 минуту; написано за 1 минуту 39 секунд)
Post subject:
|
|
affka wrote: |
Каждое окно чата - это отдельный канал должен быть. | а почему не один канал в который передаём ID окна чата и список тех для кого это сообщение? таким образом его прочитают только пользователи из списка и отобразится оно в указанном окне (разговоре)
|
|
Back to top |
|
 |
advocot
Заглянувший
Joined: 10 Oct 2012
Posts: 12
Карма: 1 поощрить/наказать
|
Posted: Tue Nov 20, 2012 10:52 pm (спустя 5 часов 51 минуту; написано за 4 минуты 29 секунд)
Post subject:
|
|
Demon_id wrote: |
а почему не один канал в который передаём ID окна чата и список тех для кого это сообщение? таким образом его прочитают только пользователи из списка и отобразится оно в указанном окне (разговоре) | Так тоже можно. Если определитесь как быть с айди окна чата. Ведь должна быть возможность открывать его повторно после закрытия браузера и не перепутать с другим. История, я так понимаю, тоже должна отображаться там. Просто я пока не совсем представляю, как это сделать. Но если у Вас идея реализации уже есть, то можно и так. Не пользуюсь фейсбуком просто. И вопрос слишком глобальный помоему. Demon_id wrote: |
не совсем понял про каналы в Риалплексоре | С каналами то всё просто. Пользователь может подписаться на любой(и даже ручками через исходный код или консоль, поэтому желательно их названия как-то шифровать и ограничивать получетелей. Иначе можно чужую переписку читать). Сервер тоже может отправить что угодно в любой канал. А уже как это использовать... ограничивается лишь Вашей фантазией :)
|
|
Back to top |
|
 |
advocot
Заглянувший
Joined: 10 Oct 2012
Posts: 12
Карма: 1 поощрить/наказать
|
Posted: Tue Nov 20, 2012 11:06 pm (спустя 13 минут; написано за 7 минут 11 секунд)
Post subject:
|
|
Я например для личной переписки каналы не регистрировал. Я ни для чего их не регистрировал(т.е. нигде в базе не сохранял названия). У меня функционал похож на ВК. На всех страницах юзер подписан на свой персональный канал, название которого генерируется исходя из айди юзера. Например "user_1_174n6379s19gr7cgb347rg6sn34r6g43". ЭтоВ него просто передаются обновления для конкретного юзера. Например если ему написал кто-то в приват, то в этот канал просто отправляется массив, который при обработке ставит +1 возле ссылки "Сообщения" и проигрывает звук. А на странице самого чата юзер подключается еще и к каналу "1_23_cnb297rnsg346rms3462rgm2463r". Название этого канала генерируется так:То есть вручную каналы не подберешь, не зная "secretkey", и не сможешь подслушивать.
|
|
Back to top |
|
 |
Demon_id
Заглянувший
Joined: 01 Aug 2006
Posts: 13
Карма: 0 поощрить/наказать
|
Posted: Tue Nov 20, 2012 11:35 pm (спустя 29 минут; написано за 1 минуту 13 секунд)
Post subject:
|
|
advocot wrote: |
А на странице самого чата юзер подключается еще и к каналу "1_23_cnb297rnsg346rms3462rgm2463r". | Всё бы так и было, если б не возможность в чат для двоих добавлять других пользователей. Кстати, при перезагрузке страницы, как вы узнаёте к какому каналу его подключить: 1_23_... или 23_1_... ?
|
|
Back to top |
|
 |
Demon_id
Заглянувший
Joined: 01 Aug 2006
Posts: 13
Карма: 0 поощрить/наказать
|
Posted: Tue Nov 20, 2012 11:41 pm (спустя 6 минут; написано за 4 минуты 42 секунды)
Post subject:
|
|
Я собираюсь в БД хранить текущие беседы в таком виде: ID_окна_чата, IDs_участников (в виде set поля). Таким образом, при получении сообщения нужно передавать ID беседы. из БД по этому ID вытягивать пользователей которым и отправлять это сообщение опять же с ID чата. Эти пользователи получат сообщение, а благодаря ID чата система будет знать в какую беседу их отобразить. Задача в том, чтобы придумать как давать идентификаторы беседам. Чтобы система распознавала кто участвует в беседе и нельзя было вести две отдельные беседы с одинаковым набором участников.
|
|
Back to top |
|
 |
Demon_id
Заглянувший
Joined: 01 Aug 2006
Posts: 13
Карма: 0 поощрить/наказать
|
Posted: Tue Nov 20, 2012 11:48 pm (спустя 6 минут; написано за 2 минуты 46 секунд)
Post subject:
|
|
advocot wrote: |
А на странице самого чата юзер подключается еще и к каналу "1_23_cnb297rnsg346rms3462rgm2463r". | Или вот ещё. Один пользователь выбирает из списка другого и пишет ему сообщение в открывшемся окне. В это же время, тот другой пользователь делает тоже самое у себя. Первый отправляет сообщение. И тут нужно как то создать канал, чтобы сообщение пришло в уже открытое вторым пользователем. И когда второй отправит сообщение, нужно проверить, нет ли между ними уже созданного канала, чтобы не создавать ещё один паралельный канал.
|
|
Back to top |
|
 |
advocot
Заглянувший
Joined: 10 Oct 2012
Posts: 12
Карма: 1 поощрить/наказать
|
Posted: Wed Nov 21, 2012 2:40 am (спустя 2 часа 52 минуты; написано за 12 минут 14 секунд)
Post subject:
|
|
Demon_id wrote: |
Кстати, при перезагрузке страницы, как вы узнаёте к какому каналу его подключить: 1_23_... или 23_1_... ? | Ну лично я решил просто меньшее число(айди) ставить первым :) Demon_id wrote: |
Задача в том, чтобы придумать как давать идентификаторы беседам. Чтобы система распознавала кто участвует в беседе и нельзя было вести две отдельные беседы с одинаковым набором участников. | А просто исходя из ID записи в таблице бесед? Беседой будем называть разговор 3х и более лиц. Как только в обычный приватный разговор 2х лиц добавляется третье - регистрировать беседу со всеми участниками(то есть создаем новую). И теперь уже при отправке сообщений передавать еще и айди беседы. При каждом последующем добавлении юзера в беседу - просто обновлять список участников в базе WHERE id='айди_текущей_беседы'. Сами эти беседы желательно как-то хранить в истории. Как в скайпе. Корректно сделать восстановление пред. разговора при создании новой беседы с теми же участниками, никак у Вас не получится. Demon_id wrote: |
Или вот ещё. Один пользователь выбирает из списка другого и пишет ему сообщение в открывшемся окне. В это же время, тот другой пользователь делает тоже самое у себя. Первый отправляет сообщение. И тут нужно как то создать канал, чтобы сообщение пришло в уже открытое вторым пользователем. И когда второй отправит сообщение, нужно проверить, нет ли между ними уже созданного канала, чтобы не создавать ещё один паралельный канал. | Не вижу смысла в регистрации канала(сохранении его в БД) ради 1х1 привата. Лучше делать по той же логике, как я. А абзацом выше я написал, как превращать это в беседу. Если что, то готов морально помочь в скайпе e-leman PS Почему SET? Я конечно с мускулом на уровне "привет, пока" разговариваю, но помоему SET тут ничем не поможет.
|
|
Back to top |
|
 |
affka
Guest
Карма: 388 поощрить/наказать
|
Posted: Wed Nov 21, 2012 4:46 am (спустя 2 часа 5 минут; написано за 3 минуты 6 секунд)
Post subject:
|
|
Quote: |
Задача в том, чтобы придумать как давать идентификаторы беседам. Чтобы система распознавала кто участвует в беседе и нельзя было вести две отдельные беседы с одинаковым набором участников. | Абстрагируйтесь от тех пользователей, которые там общаются. Беседа - это просто какое-то окно чата с неограниченным списком пользователей, которые туда могут добавляться и удаляться. У групповой беседы нет фиксированного списка пользователей по которому можно судить о чем-либо. У каждого пользователя (в бд) хранятся данные о том, в каких он групповых беседах участвует - по этим данным можно восстанавливать список бесед.
|
|
Back to top |
|
 |
Demon_id
Заглянувший
Joined: 01 Aug 2006
Posts: 13
Карма: 0 поощрить/наказать
|
Posted: Wed Nov 21, 2012 1:56 pm (спустя 9 часов 10 минут; написано за 31 секунду)
Post subject:
|
|
advocot wrote: |
А просто исходя из ID записи в таблице бесед? Беседой будем называть разговор 3х и более лиц. Как только в обычный приватный разговор 2х лиц добавляется третье - регистрировать беседу со всеми участниками(то есть создаем новую). И теперь уже при отправке сообщений передавать еще и айди беседы. При каждом последующем добавлении юзера в беседу - просто обновлять список участников в базе WHERE id='айди_текущей_беседы'. | да, сегодня к утру придумал точно такую же схему. Всем спасибо за обсуждение.
|
|
Back to top |
|
 |
Demon_id
Заглянувший
Joined: 01 Aug 2006
Posts: 13
Карма: 0 поощрить/наказать
|
Posted: Wed Nov 21, 2012 2:08 pm (спустя 11 минут; написано за 1 минуту 48 секунд)
Post subject:
|
|
Прошу прощения. С сетом натупил. Не учёл что варианты его значений нужно определить сразу при создании таблицы.
|
|
Back to top |
|
 |
MemoS77
Заглянувший
Joined: 11 Jan 2013
Posts: 2
Карма: 0 поощрить/наказать
|
Posted: Fri Jan 11, 2013 1:49 pm (спустя 1 месяц 19 дней 23 часа 40 минут; написано за 12 минут 41 секунду)
Post subject: RealPlexor
|
|
Добрый день! Пытаюсь разобраться с RealPlexor, возникла проблема с подключением через JS. В Unix не силен. Распишу свои действия детально, что бы легче было найти причину. Установка прошла без проблем. Для реалплексора на своем VDS создал поддомен: rp.grandgames.net/
В настройках NGINX в секции location/ добавил: proxy_pass 78.108.95.93:8088; (78.108.95.93 - адрес моего сервера. IP у меня только один) В файле dklab_realplexor.conf изменил следующие параметры: WAIT_ADDR=78.108.95.93:8088 IN_ADDR=78.108.95.93:10010 ID_BINDINGS_SERVERS=78.108.95.93:11211 JS_WAIT_URI='rp.grandgames.net/' Для теста создал поддомен: test.grandgames.net Серверный API вроде как, судя по логам заработал нормально. При выполнении на странице test.grandgames.net/ следующего кода: <?php Echo 'Try Send...<br>'; require_once "Realplexor.php"; $rpl = new Dklab_Realplexor( "rp.grandgames.net", "10010", "Test" ); echo $rpl->send("k1", "Test Message"); echo 'Sended!<br>'; ?> Ошибок не возникает и в лог записывается следующее: realplexor/dklab_realplexor.conf: IN: 78.108.95.93:47051: DEBUG: connection opened realplexor/dklab_realplexor.conf: IN: 78.108.95.93:47051: DEBUG: read 111 bytes realplexor/dklab_realplexor.conf: IN: 78.108.95.93:47051: DEBUG: parsed IDs realplexor/dklab_realplexor.conf: IN: 78.108.95.93:47051: DEBUG: added data for [Testk1] realplexor/dklab_realplexor.conf: IN: 78.108.95.93:47051: DEBUG: connection closed Т.е. видно что реалплексор работает. Создал простейший код для теста JS: test.grandgames.net/test.php
В нем подключаю dklab_realplexor.js и после того как создаю объект следующим кодом: var realplexor = new Dklab_Realplexor( "rp.grandgames.net/", "test" ); код дальше не выполняется. Т.е. в конструкторе объекта ошибка возникает. В чем причина? P.S. Правильно ли я настроил конфигурацию? Нормален ли тот факт, что если в PHP файле (серверное API) я вместо rp.grandgames.net укажу любой свой сайт на этом же IP, реалплексор все равно передаст данные?
|
|
Back to top |
|
 |
volodyahome
Guest
Карма: 388 поощрить/наказать
|
Posted: Mon Jan 14, 2013 11:00 am (спустя 2 дня 21 час 11 минут; написано за 37 секунд)
Post subject:
|
|
Ошибка в том, что реалплекстор не работает с доменами 3 уровня как у вас "Создал простейший код для теста JS: test.grandgames.net/test.php..."
|
|
Back to top |
|
 |
MemoS77
Заглянувший
Joined: 11 Jan 2013
Posts: 2
Карма: 0 поощрить/наказать
|
Posted: Mon Jan 14, 2013 12:59 pm (спустя 1 час 58 минут; написано за 3 минуты 21 секунду)
Post subject:
|
|
volodyahome wrote: |
Ошибка в том, что реалплекстор не работает с доменами 3 уровня как у вас "Создал простейший код для теста JS: test.grandgames.net/test.php..." | Всмысле JS API для реалплексора будет работать только на домене 2-ого уровня? Вряд ли в этом причина, так как PHP код на этом же домене успешно записывает данные в канал.
|
|
Back to top |
|
 |
advocot
Заглянувший
Joined: 10 Oct 2012
Posts: 12
Карма: 1 поощрить/наказать
|
Posted: Thu Jan 17, 2013 7:20 am (спустя 2 дня 18 часов 20 минут; написано за 53 секунды)
Post subject:
|
|
MemoS77 wrote: |
var realplexor = new Dklab_Realplexor( "rp.grandgames.net/", "test" ); | Землю забыли?А возможно еще и с большой буквы придется, т.к. в realplexor.php Вы именно так и поставили. Насчет чувствительности к регистру не уверен.
|
|
Back to top |
|
 |
Spacewalker
Guest
Карма: 388 поощрить/наказать
|
Posted: Fri Jan 25, 2013 6:23 pm (спустя 8 дней 11 часов 3 минуты; написано за 5 минут 3 секунды)
Post subject:
|
|
Господа, есть ли уже нормальная инструкция по настройке и разворачиванию dklab_realplexor на linux? Ну ничего не могу разобрать в той горе текста, что тут есть. Опыт сконфиживания линукса не очень большой. Есть комп на линуксе (Linux mint 13 xfce) и тестовая станция на винде. На линукс ставится реалплексор. Судя по логам, оно шевелится и что-то куда-то пишет, как говорят логи. Но выдрать эту инфу ну никак не получается. Если кому несложно, помогите настроить по-нормальному. Что бы как по грамотному мануалу, а не "сичас докурю и пойду сдавать китайский". 1) Что писать в /etc/hosts на локальном компе и drivers/etc/hosts на другой машине в сети? 2) Как настроить виртуальный хост на локальном компе? 3) Что писать в httpd.conf? 4) Что писать в dklab_realplexor.conf? Спасибо за помощь и создателю за его работу.
|
|
Back to top |
|
 |
Guest
Карма: 388 поощрить/наказать
|
Posted: Thu Feb 07, 2013 5:18 pm (спустя 12 дней 22 часа 54 минуты; написано за 7 секунд)
Post subject:
|
|
blog.himic.ru/blog/Perl/39.html
|
|
Back to top |
|
 |
NickName
Заглянувший
Joined: 10 Feb 2013
Posts: 2
Карма: 0 поощрить/наказать
|
Posted: Sun Feb 10, 2013 5:58 pm (спустя 3 дня 39 минут; написано за 2 минуты 10 секунд)
Post subject:
|
|
Здравствуйте. Помогите победить: Opera wrote: |
Uncaught exception: ReferenceError: Security error: attempted to read protected variable: Dklab_Realplexor_Loader Error thrown at line 71, column 2 in <anonymous function: Dklab_Realplexor._iframeLoaded>() in host/dklab_realplexor.js: th._realplexor = iframe.contentWindow.Dklab_Realplexor_Loader; |
FF wrote: |
Ошибка: Permission denied to access property 'Dklab_Realplexor_Loader' Источник: host/dklab_realplexor.js Строка: 71 | Всё работало, вроде ничего относящегося реалплекстору не правил...
|
|
Back to top |
|
 |
Vitechka22
Заглянувший
Joined: 12 Feb 2013
Posts: 6
Карма: 0 поощрить/наказать
|
Posted: Tue Feb 12, 2013 7:20 pm (спустя 2 дня 1 час 22 минуты; написано за 8 минут 42 секунды)
Post subject:
|
|
Всем, доброго времени суток. Выбираю комет. Рассматриваю варианты Dklab Realplexor VS node.js По Dklab Realplexor прочитал тут вроде всё. Буду признателен за внятную консультацию по возникшим вопросам. 1. Проблема загузки CPU на Debian (и не только) решена? Вообще есть ли? Или тут описаны разовые случаи? РуТвит же выдерживает? Это основном смущающий меня момент... 2. Проект жив? Или мертв? Честно. Видел сообщения двухлетней давности, анонс грядущих не только PHP API. Нужен для Perl 3. По архитектуре. (тут я не особо силен, ногами больно не бейте) Я правильно понимаю, что нужен - nginx, c кэшем и побольше (обсуждалось, что иначе большие сообщения теряются) - сам комет, ес-но - php PHP юзал только с Apache и года 3 последний раз. Сейчас в основном ModPerl, связка nginx для статики, Apache для динамики. Как php в связке с nginx ставиться и потом используется??? 4. Вопрос про unsubcribe. Вроде обсуждалась проблема, что этот метод зануляет call back функцию, но http не рвет, в результате куча ругани в логе. В остальном плексор меня именно простотой и русским языком привлекает :) P.S. 2-3 тыщи каналов я так понимаю не проблема. Интерисует создание "говорилки" аля как в Одноклассниках
|
|
Back to top |
|
 |
kaizer15
Заглянувший
Joined: 19 Feb 2013
Posts: 1
Карма: 0 поощрить/наказать
|
Posted: Tue Feb 19, 2013 10:30 pm (спустя 7 дней 3 часа 9 минут; написано за 2 минуты 54 секунды)
Post subject: Установка realplexor
|
|
Извините меня ребята и сильно не ругайте.... Не могу разобраться с установкой....Вроде по инструкции все.....но.....(((( Есть ли у кого возможность помочь поставить его.... пошагово и или через аську или лс и т.п. напишите пожалуйста. И еще, нужно обязательно на поддомен файлы из папки demo копировать?
|
|
Back to top |
|
 |
Guest
Карма: 388 поощрить/наказать
|
Posted: Tue Feb 19, 2013 11:22 pm (спустя 51 минуту; написано за 6 минут 29 секунд)
Post subject:
|
|
1. Поставили админы, сервер на colocation 2. Настроил nginx + Apache + PHP все тип-топ. Тут кстати возник вопрос? есть mysite.com к нему теперь comet.mysite.com имеет ли смысл на вызовы PHP и самого realplexor'a ставить такое Code (Apache config): | скопировать код в буфер обмена | location / {
valid_referers blocked server_names ~.*mysite\.com.*; if ($invalid_referer) { rewrite ^(.*)$ /404.html; }
proxy_pass http://127.0.0.1:8096; } | и для PHP Code (Apache config): | скопировать код в буфер обмена | location ~ ^/php/.*$ {
valid_referers blocked server_names ~.*mysite\.com.*; if ($invalid_referer) { rewrite ^(.*)$ /404.html; }
include /etc/nginx/proxy.inc; proxy_pass http://127.0.0.1:8095; } | т.е. чтоб исключить левые запросы ( а вдруг ) 3. Настроил $CONFIG{WAIT_TIMEOUT} = 60; # must be less than nginx.conf keepalive_timeout 65; тут это обсуждалось 4. Занимаюсь автотестами. Ща шуршат клиентские. Напишу о результат. Это нормально, что они долго крутятся???
|
|
Back to top |
|
 |
Guest
Карма: 388 поощрить/наказать
|
Posted: Tue Feb 19, 2013 11:25 pm (спустя 3 минуты; написано за 40 секунд)
Post subject:
|
|
Жалко, что форум умер... хорошая фишка. Но колупаццо теперь во всем самому...
|
|
Back to top |
|
 |
Vitechka22
Заглянувший
Joined: 12 Feb 2013
Posts: 6
Карма: 0 поощрить/наказать
|
Posted: Tue Feb 19, 2013 11:27 pm (спустя 1 минуту 33 секунды; написано за 35 секунд)
Post subject:
|
|
Последние 2 сообщения мои. Даже не обратил внимания, что незареген...
|
|
Back to top |
|
 |
Vitechka22
Заглянувший
Joined: 12 Feb 2013
Posts: 6
Карма: 0 поощрить/наказать
|
Posted: Tue Feb 19, 2013 11:31 pm (спустя 4 минуты; написано за 27 секунд)
Post subject:
|
|
Все тесты FAILED ((((((( All tests are finished! Results are saved for later analyze. И где смотреть результаты?????
|
|
Back to top |
|
 |
Vitechka22
Заглянувший
Joined: 12 Feb 2013
Posts: 6
Карма: 0 поощрить/наказать
|
Posted: Tue Feb 19, 2013 11:34 pm (спустя 2 минуты; написано за 10 секунд)
Post subject:
|
|
Testing 0100_success.jst... ERROR Testing 0101_no_request_if_no_subscribes.jst... ERROR Testing 0102_success_ns.jst... ERROR Testing 0103_success_ns_login.jst... ERROR Testing 0105_setpos.jst... ERROR Testing 0110_abort_not_bounce.jst... ERROR Testing 0110_error_skip_ok.jst... ERROR Testing 0120_error_incomplete_resp.jst... ERROR Testing 0120_js_error_is_not_bounce.jst... ERROR Testing 0130_disconnect_no_warn.jst... ERROR Testing 0140_long_ids_list.jst... ERROR Testing 0200_eval_error.jst... ERROR Testing 0200_subscribe_same_callback.jst... ERROR Testing 0210_no_req_if_execute_in_callback.jst... ERROR Testing 0300_unsubscribe.jst... ERROR All tests are finished! Results are saved for later analyze. ГДЕ ЛОГИ????
|
|
Back to top |
|
 |
Vitechka22
Заглянувший
Joined: 12 Feb 2013
Posts: 6
Карма: 0 поощрить/наказать
|
Posted: Wed Feb 20, 2013 12:31 am (спустя 57 минут; написано за 43 секунды)
Post subject:
|
|
Ура!!! Testing 0100_success.jst... SUCCESS Testing 0101_no_request_if_no_subscribes.jst... SUCCESS Testing 0102_success_ns.jst... SUCCESS Testing 0103_success_ns_login.jst... SUCCESS Testing 0105_setpos.jst... SUCCESS Testing 0110_abort_not_bounce.jst... SUCCESS Testing 0110_error_skip_ok.jst... SUCCESS Testing 0120_error_incomplete_resp.jst... SUCCESS Testing 0120_js_error_is_not_bounce.jst... SUCCESS Testing 0130_disconnect_no_warn.jst... SUCCESS Testing 0140_long_ids_list.jst... SUCCESS Testing 0200_eval_error.jst... SUCCESS Testing 0200_subscribe_same_callback.jst... SUCCESS Testing 0210_no_req_if_execute_in_callback.jst... SUCCESS Testing 0300_unsubscribe.jst... SUCCESS Осталось победить серверные сесты и мона приступать к самому вкусному :)))
|
|
Back to top |
|
 |
Vitechka22
Заглянувший
Joined: 12 Feb 2013
Posts: 6
Карма: 0 поощрить/наказать
|
Posted: Wed Feb 20, 2013 12:36 am (спустя 4 минуты; написано за 1 минуту 3 секунды)
Post subject:
|
|
Сам RealPlexor должен быть из под root'a запущен? Серверные тесты тоже только из под рута?
|
|
Back to top |
|
 |
NickName
Заглянувший
Joined: 10 Feb 2013
Posts: 2
Карма: 0 поощрить/наказать
|
Posted: Sun Feb 24, 2013 9:31 pm (спустя 4 дня 20 часов 55 минут; написано за 4 минуты 58 секунд)
Post subject:
|
|
NickName wrote: |
Здравствуйте. Помогите победить: Opera wrote: |
Uncaught exception: ReferenceError: Security error: attempted to read protected variable: Dklab_Realplexor_Loader Error thrown at line 71, column 2 in <anonymous function: Dklab_Realplexor._iframeLoaded>() in host/dklab_realplexor.js: th._realplexor = iframe.contentWindow.Dklab_Realplexor_Loader; |
FF wrote: |
Ошибка: Permission denied to access property 'Dklab_Realplexor_Loader' Источник: host/dklab_realplexor.js Строка: 71 | Всё работало, вроде ничего относящегося реалплекстору не правил... | Разобрался! айфрэйм обрезанный приходил, конца кода не было По запросу типа realtime.rutwit.ru/?1361729854?identifier=IFRAME&HOST=rutwit.ru&version=1.32 код обрывался на: Code (JavaScript): | скопировать код в буфер обмена | ..... execute: function(callbacks, callAndReturnException, namespace) { var th = this; window.onunload = function() { // This is for IE7: it does not abort the connection on unload // and reaches the connection limit. try { if (th._lastXmlhttp) { th._lastXmlhttp.onreadyst | Видимо фиксированное кол-во байт отдаётся на запрос. Не стал разбираться с этим, вырезал комментарии и код влез. Всё работает. Буду признателен если кто-то подскажет почему IFRAME_FILE => "dklab_realplexor.html", отдаётся не целиком.
|
|
Back to top |
|
 |
affka
Guest
Карма: 388 поощрить/наказать
|
Posted: Thu Feb 28, 2013 11:44 am (спустя 3 дня 14 часов 12 минут; написано за 3 минуты 39 секунд)
Post subject:
|
|
2Vitechka22: > 1. Проблема загузки CPU на Debian (и не только) решена? Вообще есть ли? Или тут описаны разовые случаи? РуТвит же выдерживает? Это основном смущающий меня момент... Есть ещё с++ версия, рутвит скорее всего на ней и живет. В С++ версии вроде проблем нет с загрузкой cpu. На своём проекте у меня стоит perl версия, переодически сервер начинает лагать, но пока не могу точно сказать что это реалплекстор, хотя он несомненно под сомнением.. 2. Проект жив? Или мертв? Честно. Видел сообщения двухлетней давности, анонс грядущих не только PHP API. Нужен для Perl Судя по форуму и коммитам - скорее мёртв. >Рассматриваю варианты Dklab Realplexor VS node.js Реалплекстор, конечно, быстрее запустится, но много времени можно потерять на всплывающих подводных камнях. Если есть нормальные знания javascript, то лучше nodejs выбери. Nodejs будет проще допилить или исправить, код то свой.
|
|
Back to top |
|
 |
|